টেক্সট প্রিপ্রসেসিং হল প্রাক-প্রসেসিং ধাপগুলির একটি সিরিজ যা একটি টেক্সট ডেটা বা কনটেন্টকে পরিষ্কার এবং প্রস্তুত করার জন্য ব্যবহৃত হয়, যাতে এটি মেশিন লার্নিং মডেল বা অন্য যেকোনো টেক্সট অ্যানালাইসিসের জন্য উপযোগী হয়। টেক্সট ডেটা প্রায়ই অপরিষ্কার এবং অপ্রাসঙ্গিক শব্দ বা চিহ্ন দ্বারা পূর্ণ থাকে, যার কারণে এটি সরাসরি অ্যানালাইসিসের জন্য উপযুক্ত নয়। টোকেনাইজেশন, স্টেমিং, এবং লেমাটাইজেশন হল তিনটি গুরুত্বপূর্ণ টেক্সট প্রিপ্রসেসিং পদ্ধতি যা শব্দ বিশ্লেষণ বা মডেলিংয়ের জন্য ডেটা প্রস্তুত করতে ব্যবহৃত হয়।
১. টোকেনাইজেশন (Tokenization)
টোকেনাইজেশন হল একটি প্রক্রিয়া যেখানে একটি বড় টেক্সট ডকুমেন্ট বা বাক্যকে ছোট ছোট উপাদানে ভাগ করা হয়, যা সাধারণত শব্দ (word) বা বাক্যাংশ (sentence) হিসেবে থাকে। এই উপাদানগুলোকে টোকেন বলা হয়।
উদাহরণ:
ধরা যাক আপনার টেক্সট:
আমি আজকে স্কুলে যাব।
টোকেনাইজেশন দ্বারা এই বাক্যটি নিম্নলিখিত টোকেনগুলিতে বিভক্ত হবে:
- ["আমি", "আজকে", "স্কুলে", "যাব।"]
টোকেনাইজেশন পদ্ধতির ধরন:
- ওয়ার্ড টোকেনাইজেশন: এখানে বাক্যকে শব্দে বিভক্ত করা হয়। উদাহরণ:
I love programming→["I", "love", "programming"] - সেন্টেন্স টোকেনাইজেশন: এখানে একটি ডকুমেন্টকে বাক্যে ভাগ করা হয়। উদাহরণ:
I love programming. It's fun.→["I love programming.", "It's fun."]
২. স্টেমিং (Stemming)
স্টেমিং একটি প্রক্রিয়া যেখানে একটি শব্দের মূল রূপ বা বেস ফর্ম খুঁজে বের করা হয়। এটি শব্দটির শেষের অংশ কেটে ফেলে তার মূল রূপে রূপান্তরিত করে। উদাহরণস্বরূপ, "running" শব্দটি স্টেমিং প্রক্রিয়ায় "run" হয়ে যাবে।
উদাহরণ:
- Running → Run
- Happiness → Happi
- Studies → Studi
স্টেমিংয়ের পদ্ধতিতে সাধারণত কিছু নির্দিষ্ট নিয়ম ব্যবহার করা হয় এবং এটি একেবারে সঠিক শব্দের ফর্ম প্রদান নাও করতে পারে। তবে এটি প্রক্রিয়া দ্রুত এবং কার্যকরী হয়।
প্রসিদ্ধ স্টেমিং অ্যালগরিদম:
- Porter Stemmer: এটি একটি সাধারণ স্টেমিং অ্যালগরিদম যা ইংরেজি ভাষায় ব্যবহৃত হয়।
- Snowball Stemmer: এটি একটি উন্নত স্টেমিং অ্যালগরিদম যা কয়েকটি ভাষার জন্য কাজ করে, যেমন ইংরেজি, ফ্রেঞ্চ, স্প্যানিশ ইত্যাদি।
৩. লেমাটাইজেশন (Lemmatization)
লেমাটাইজেশন হল একটি উন্নত প্রক্রিয়া যা স্টেমিং-এর তুলনায় বেশি সঠিক। এটি একটি শব্দের প্রকৃত বা গ্রামাটিক্যালি সঠিক বেস ফর্ম বের করে। লেমাটাইজেশন শব্দের মানে এবং তার শাব্দিক প্রাসঙ্গিকতা বজায় রেখে এটি করে, এবং এটি ভাষার নির্দিষ্ট গঠন অনুসরণ করে।
উদাহরণ:
- Running → Run
- Better → Good
- Studies → Study
লেমাটাইজেশন সাধারণত ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP) এর জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি শব্দের প্রকৃত মান এবং গঠন বজায় রাখে। লেমাটাইজেশন সাধারণত শব্দের ব্যাকরণ এবং অর্থ যাচাই করে কাজ করে, যা স্টেমিংয়ের তুলনায় অধিক সঠিক।
লেমাটাইজেশনের পদ্ধতি:
- WordNet Lemmatizer: এটি একটি জনপ্রিয় লেমাটাইজেশন টুল যা WordNet ডেটাবেস ব্যবহার করে কাজ করে।
- SpaCy Lemmatizer: SpaCy লাইব্রেরি ব্যবহার করে লেমাটাইজেশন করা যায়, যা অত্যন্ত দ্রুত এবং কার্যকরী।
৪. স্টেমিং এবং লেমাটাইজেশনের মধ্যে পার্থক্য
| দিক | স্টেমিং (Stemming) | লেমাটাইজেশন (Lemmatization) |
|---|---|---|
| পদ্ধতি | শব্দের শেষাংশ কেটে ফেলা হয়, এবং একটি শর্তযুক্ত নিয়ম অনুসরণ করা হয়। | ভাষার ব্যাকরণ অনুসরণ করে মূল শব্দ পাওয়া যায়। |
| ফলাফল | কখনও কখনও অপ্রাসঙ্গিক বা অসম্পূর্ণ শব্দ হতে পারে। | সর্বোত্তম এবং শাব্দিকভাবে সঠিক শব্দ পাওয়া যায়। |
| গতি | দ্রুত হয়, তবে সঠিকতা কম থাকে। | ধীর, তবে সঠিকতা বেশি। |
| উদাহরণ | "Playing" → "Play", "Happiness" → "Happi" | "Playing" → "Play", "Happiness" → "Happiness" |
| ব্যবহার | সাধারণত দ্রুত প্রক্রিয়া, কিন্তু ভাষার সঠিকতা অগ্রাধিকার নয়। | ভাষার সঠিকতা এবং অর্থ বুঝতে বেশি উপযোগী। |
৫. Python লাইব্রেরি ব্যবহারের মাধ্যমে টোকেনাইজেশন, স্টেমিং এবং লেমাটাইজেশন
টোকেনাইজেশন:
from nltk.tokenize import word_tokenize
text = "আমি আজকে স্কুলে যাব।"
tokens = word_tokenize(text)
print(tokens)
স্টেমিং:
from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
word = "running"
stemmed_word = stemmer.stem(word)
print(stemmed_word)
লেমাটাইজেশন:
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
word = "better"
lemmatized_word = lemmatizer.lemmatize(word, pos='a') # 'a' for adjective
print(lemmatized_word)
সারাংশ
টেক্সট প্রিপ্রসেসিং হল মেশিন লার্নিং এবং নেচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP) এ অত্যন্ত গুরুত্বপূর্ণ প্রক্রিয়া, যা ডেটাকে পরিষ্কার করে এবং মডেলের জন্য উপযুক্ত করে তোলে। টোকেনাইজেশন ডেটাকে ছোট অংশে বিভক্ত করে, স্টেমিং এবং লেমাটাইজেশন শব্দের মূল রূপ খুঁজে বের করতে সাহায্য করে। স্টেমিং দ্রুত কিন্তু সঠিক নয়, আর লেমাটাইজেশন সঠিক এবং ব্যাকরণ অনুসারে শব্দের মূল রূপ প্রদান করে।
Read more